A digital magnetic recording system employs a modulation code for magnetic recording and reading of binary data on magnetic media. A modulation code is implemented by an encoder and a decoder. The encoder encodes a data word by mapping the data word one-to-one onto a code word. The magnetic recording system then stores the code word onto a magnetic recording media, such as hard discs, using a NRZI (modified non-retum-to-zero) format.
A magnetic recording system usually stores binary information on magnetic media as magnetic transitions. These magnetic transitions are coded binary waveforms. In NRZI format, a magnetic transition is a code word bit of value logic one. When reading a code word from the magnetic media, a magnetic transition results in an electric pulse for the readback signal. Conversely, a logic zero is represented by the absence of a magnetic transition. The maximum and minimum spaces between consecutive transitions correspond to the maximum and minimum run lengths of zeros between two consecutive ones in a code word, as discussed further below.
Typically, magnetic recording systems employ a partial-response channel (PR) with a maximum-likelihood (ML) detector. Examples of PR channels are PR4 and EPR4 channels. An example of a maximum-likelihood detector is a Viterbi detector. The combination of a PR channel with a ML detector often is referred to as a PRML channel. Usually such magnetic recording systems employ run length limited modulation codes.
Run length limited codes are denoted as follows: I/J(d,k/k1). "I" represents the length of the data word in numbers of bits and "J" represents the length of the code word in numbers of bits. The ratio of I/J is the code rate. "d" is the minimum number of consecutive zeros between ones. Typically, d equals zero. "k" is the maximum number of zeros between ones. The smaller k is the easier it is for a PLL (phase-locked loop) in the magnetic recording system to recover a clock signal that is embedded code words. In addition, a low value of k facilitates automatic gain control in the magnetic recording system.
PR4 channels have the capability of de-multiplexing code words into odd-index and even-index sub-sequences. A maximum-likelihood detector processes each sub-sequence independently. Consequently, PRML channels include a further constraint, k1, that is the maximum number of consecutive zeros in each of the sub-sequences. "k1" is the maximum number of zeros between ones in the odd and even substrings. In EPR4 channels, a small value of k1 reduces the path memory size of the maximum-likelihood detector.
Many magnetic recording systems use rate 8/9 modulation code. Other types of codes are rate 16/17 codes. Compared with the 16/17 codes, the rate 8/9 codes suffer from the disadvantage of lower recording densities. Yet, a typical disadvantage of 16/17 codes is higher error propagation as compared with rate 8/9 codes. Error propagation means that, for example, an error event (e.g., a single error bit) in a code word causes error bits in both bytes of the corresponding decoded word, i.e, the data word. Indeed, in rate 16/17 codes, error propagation can cause three or four byte errors to occur in consecutive sixteen bit words. An ECC (error correction code) circuit in the magnetic recording system can have its performance substantially degraded by such three or four byte errors especially for a non-interleaved ECC. The result is a relatively high uncorrectable error rate or hard error rate of the magnetic recording system. Typically, the hard error rate is measured as uncorrectable sectors divided by number of bits read.
To reduce the error propagation, the value of k may be increased to 12. However, the consequence of such a large value of k is that code words with large numbers of consecutive zeros may be encountered. In such instances, a PLL of the magnetic recording system can lose lock with the embedded clock of the code words.
FIG. 1 shows a prior art rate 16/17 decoder 110. The decoder 110 accepts a 17-bit code word 114 on input lines C0-C16. The decoder 110 outputs a data word output bits on output lines A0-A15. The decoder 110 is a full code word decoder. This means that due to error propagation any bit on any input line C0-C16 can affect the output bits on output lines A0-A15, as further discussed below.
FIG. 2 illustrates the error propagation of the prior art rate 16/17 decoder 114 of FIG. 1. In FIG. 2, a rate 16/17 decoder 114 decodes a first word 218 and a second word 222. As shown in FIG. 2, decoder 214 first receives code word 218 and then code word 222. Code word 218 includes error bits 220. The remaining bits of code word 218 are error free. Similarly, code word 222 includes error bits 226 with the remaining bits being error free. Referencing to FIG. 1, error bits 220 occur on input lines C15 and C16, and error bits 226 occur on input lines C1 and C2. The output of decoder 114 are data words 226 and 230. Because an error bit on any input line C0-C16 can cause error(s) on any output line A0-A15, there is a significant probability that data words 226, 230 will have a 4-byte error, as shown. As illustrated in FIG. 2, byte1 234, byte2 238, byte3 242, and byte4 246 have errors. Therefore, ECC 250 will have to error correct a 4-byte error, i.e., an error in each byte of two data words. As mentioned, 4-byte errors can result in a significant hard error rate.